1. Field of the Invention
The present invention relates generally to an improved data processing system. More specifically, the present invention is directed to a computer implemented method, system, and computer usable program code for an extensible infrastructure to automate detection of bottlenecks in application performance.
2. Description of the Related Art
To bridge the productivity gap between hardware complexity and software limitations of current and next-generation high performance computing systems, performance tools should allow users at any level of experience to conduct performance analysis and tune scientific applications. Traditional performance tools, however, offer little support for the non-expert user. Thus, non-expert users must seek the assistance of performance tuning experts to improve application performance on their systems. While these tuning experts may improve application performance and help a few non-expert users, the number of such experts is very limited. Consequently, many non-expert users do not have access to these experts.
Furthermore, traditional performance tools fail to ease the task of resolving application performance issues for the tuning experts, as well as the non-experts. These traditional performance tools do not support encoding of solved problems (i.e., problems that were previously identified and solved by a user). As a result, these traditional performance tools cannot detect and solve previously identified and solved problems in other applications.
Without the support of effective performance tools, users of these high performance computing systems will see this productivity gap continue to grow. Performance tools need to simplify the complexity of performance tuning and apply automatic, intelligent, and predictive technologies to mitigate the burden on today's scientists and programmers. Currently, no solutions exist that automate and simplify the performance analysis and tuning cycle. The only known solutions for determining application performance bottlenecks today are solutions that involve manual intervention by users.
Therefore, it would be beneficial to have an improved computer implemented method, system, and computer usable program code for providing an extensible infrastructure that automates the detection of performance bottlenecks in any application on any given system.